home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 February / Macworld (1999-02).dmg / Games World / SharewareGames / Xconq 7.2.2 / lib / flattop.g < prev    next >
Text File  |  1998-05-22  |  6KB  |  289 lines

  1. (game-module "flattop"
  2.   (title "Flattop Battles")
  3.   (blurb "WW II, in the Pacific, aboard a carrier")
  4.   (variants (see-all false))
  5.   )
  6.  
  7. (unit-type f (name "fighter") (image-name "1e")
  8.   (help "protects ships from aircraft"))
  9. (unit-type d (name "dive bomber") (image-name "1e")
  10.   (help "attacks ships by bombing at close range"))
  11. (unit-type t (name "torpedo bomber") (image-name "torpedo-bomber")
  12.   (help "carries deadly torpedos"))
  13. (unit-type pby (name "PBY") (char "p")
  14.   (help "long-range scout plane"))
  15. (unit-type dd (name "destroyer") (char "D")
  16.   (help "small ship that protects against subs"))
  17. (unit-type sub (name "submarine") (char "S")
  18.   (help ""))
  19. (unit-type cve (name "escort carrier") (char "E") (image-name "cv")
  20.   (help "small aircraft carrier"))
  21. (unit-type cl (name "light cruiser") (char "R") (image-name "ca")
  22.   (help ""))
  23. (unit-type ca (name "heavy cruiser") (char "R")
  24.   (help ""))
  25. (unit-type cv (name "carrier") (char "C")
  26.   (help ""))
  27. (unit-type bb (name "battleship") (char "B")
  28.   (help ""))
  29. (unit-type / (name "base") (image-name "airbase")
  30.   (help ""))
  31.  
  32. (material-type fuel (char "o") (help "how to get around"))
  33. (material-type ammo (char "a") (help "small stuff"))
  34. (material-type shell (char "A") (help "8 to 16 inch"))
  35. (material-type bomb (char "b") (help "iron bombs"))
  36. (material-type torps (char "!") (help "death to ships"))
  37.  
  38. (define o fuel)
  39. (define a ammo)
  40. (define A shell)
  41. (define b bomb)
  42. (define ! torps)
  43.  
  44. (terrain-type sea (char "."))
  45. (terrain-type atoll (char ","))
  46. (terrain-type island (image-name "forest") (char "+"))
  47.  
  48. (define combat-air (f d t))
  49. (define air (f d t pby))
  50. (define heavy (cl ca bb))
  51. (define carriers (cve cv))
  52. (define ships (dd sub cve cl ca cv bb))
  53.  
  54. (add sea liquid true)
  55.  
  56. ;;; Static relationships.
  57.  
  58. (table unit-size-as-occupant
  59.   (u* u* 99)
  60.   (air carriers 1)
  61.   (air / 4)
  62.   (ships / 1)
  63.   )
  64.  
  65. (add air capacity 0)
  66. (add carriers capacity (4 8))
  67. (add / capacity 32)
  68.  
  69. (add t* capacity 4)
  70.  
  71. (table unit-size-in-terrain
  72.   ;; Any number of aircraft can share the same airspace.
  73.   (air t* 0)
  74.   ;; Up to 4 ships (irrespective of size) in a cell.
  75.   (ships t* 1)
  76.   ;; Base takes up entire cell.
  77.   (base t* 4)
  78.   )
  79.  
  80. (table unit-storage-x
  81.   (ships (fuel ammo) 500)
  82.   (air fuel 24)
  83.   (pby fuel 48)
  84.   (air ammo 2)
  85.   (pby ammo 0)
  86.   (d b 2)
  87.   (t torps 2)
  88.   ((dd sub) torps 12)
  89.   (cve (b torps) 25)
  90.   (cv (b torps) 50)
  91.   (heavy shell 50)
  92.   (/ m* 1000)
  93.   )
  94.  
  95. (table base-consumption
  96.   (air fuel 12)
  97.   (pby fuel  6)
  98.   (ships fuel 1)
  99.   )
  100.  
  101. (table hp-per-starve
  102.   ;; Aircraft splash immediately if they run out of fuel.
  103.   (air fuel 1.00)
  104.   ;; Ships have a short grace period.
  105.   (ships fuel 0.10)
  106.   )
  107.  
  108. ;;; Vision.
  109.  
  110. (table see-chance-at
  111.   (u* sub 50)
  112.   )
  113.  
  114. (table see-chance-adjacent
  115.   (u* sub 10)
  116.   (dd sub 20)
  117.   )
  118.  
  119. ;;; Actions.
  120.  
  121. (add air acp-per-turn 12)
  122. (add pby acp-per-turn 6)
  123. (add ships acp-per-turn 3)
  124.  
  125. (add / acp-per-turn 0)
  126.  
  127. ;;; Movement.
  128.  
  129. (add / speed 0)
  130.  
  131. (add air free-mp 12)
  132. (add pby free-mp 6)
  133.  
  134. (table mp-to-enter-terrain
  135.   (ships atoll 2)
  136.   (ships island 10)
  137.   )
  138.  
  139. (table mp-to-enter-unit
  140.   ;; Aircraft cannot sortie again until next turn.
  141.   (air ships 12)
  142.   (pby ships 6)
  143.   )
  144.  
  145. (table zoc-range
  146.   ;; PBYs can never block anyone.
  147.   (u* pby -1)
  148.   (pby u* -1)
  149.   ;; Nor can subs.
  150.   (u* sub -1)
  151.   (sub u* -1)
  152.   )
  153.  
  154. ;; Everybody needs fuel.
  155.  
  156. (table material-to-move
  157.   (u* fuel 1)
  158.   )
  159.  
  160. (table consumption-per-move
  161.   (u* fuel 1)
  162.   )
  163.  
  164. ;;; Combat.
  165.  
  166. (add ships hp-max (5 5 5 5 10 10 20))
  167. (add / hp-max 100)
  168.  
  169. (table acp-to-attack
  170.   (air u* 3)
  171.   )
  172.  
  173. (table hit-chance
  174.   (u* u* 50)
  175.   (f air 80)
  176.   (f f 60)
  177.   ;; PBYs have no combat capability.
  178.   (pby u* 0)
  179.   (f carriers 20)
  180.   (sub air 20)
  181.   (dd sub 70)
  182.   (carriers u* 10)
  183.   ;; Only combat aircraft and heavy ships can hit the base.
  184.   (u* / 0)
  185.   ;; ...and they always hit.
  186.   (combat-air / 100)
  187.   (heavy / 100)
  188.   )
  189.  
  190. (table damage
  191.   (u* u* 1)
  192.   (pby u* 0)
  193.   (heavy u* 3)
  194.   ((t dd sub) ships 1d4+1)
  195.   ((t dd sub) (cv bb) 1d5+6)
  196.   (bb / 1d10+5)
  197.   )
  198.  
  199. (table consumption-per-attack
  200.   (air ammo 1)
  201.   (carriers ammo 1)
  202.   ((t dd sub) torps 1)
  203.   (heavy shell 1)
  204.   )
  205.  
  206. (table hit-by
  207.   (ships (b torps) 1)
  208.   (air ammo 1)
  209.   (u* shell 1)
  210.   )
  211.  
  212. ;50 air carriers protect
  213.  
  214. (set action-notices '(
  215.   ((destroy u* air) (actor " shoots down " actee "!"))
  216.   ((destroy u* ships) (actor " sinks " actee "!"))
  217.   ))
  218.  
  219. ;; 0 air control
  220.  
  221. ;;; Random setup.
  222.  
  223. (add t* alt-percentile-min (  0  96  98))
  224. (add t* alt-percentile-max ( 96  98 100))
  225. (add t* wet-percentile-min 0)
  226. (add t* wet-percentile-max 100)
  227.  
  228. (set edge-terrain sea)
  229.  
  230. (set country-radius-min 4)
  231. (set country-separation-min 30)
  232. (set country-separation-max 32)
  233.  
  234. (add u* start-with (8 8 8 4 6 2 4 2 2 2 2 1))
  235.  
  236. (table favored-terrain
  237.   (u* t* 0)
  238.   (ships sea 100)
  239.   (/ (atoll island) 100)
  240.   )
  241.  
  242. (set advantage-min 1)
  243. (set advantage-default 2)
  244. (set advantage-max 8)
  245.  
  246. ;;; Everybody starts out full.
  247.  
  248. (table unit-initial-supply (u* m* 9999))
  249.  
  250. (set terrain-seen true)
  251. (add / already-seen 100)
  252.  
  253. ;; Note that there are no default namers for unit types, so any type
  254. ;; not mentioned in the side's own namers will simply not be named.
  255.  
  256. (set side-library '(
  257.   ((noun "American") (emblem-name "flag-usa")
  258.    (unit-namers
  259.     (cl  "us-cl-names")
  260.     (ca  "us-ca-names")
  261.     (cve "us-cve-names")
  262.     (cv  "us-cv-names")
  263.     (bb  "us-bb-names"))
  264.    )
  265.   ((noun "Japanese") (emblem-name "flag-japan")
  266.    (unit-namers
  267.     (ca  "japanese-ca-names")
  268.     (cve "japanese-cve-names")
  269.     (cv  "japanese-cv-names")
  270.     (bb  "japanese-bb-names"))
  271.    )
  272.   ))
  273.  
  274. (include "ng-ships")
  275.  
  276. ;; Also worthwhile to have generator for names like "LC-1", "CA6", etc?
  277.  
  278. (scorekeeper (do last-side-wins))
  279.  
  280. (game-module (notes (
  281.   "This is a somewhat expanded version of the navy in the standard game. "
  282.   "Each side commands a large fleet, and the sole objective is to wipe out "
  283.   "the enemy's fleet.  There are different kinds of planes and ships, but "
  284.   "nothing else."
  285.  
  286.   "Speeds of ships are uniform, so that formations work better (don't want "
  287.   "the carriers outstripping their escorts). "
  288.   )))
  289.